Print control apparatus, print control method, program, and storage medium

ABSTRACT

In order to perform printing by using a minimum of band buffer and correcting bending/inclination in a sub-scanning direction without making optical adjustments and using special hardware, 1-band image data are stored in the band buffer, images stored in the band buffer are corrected, images lying outside a band area are stored in an intermediate buffer, and images including images stored in the intermediate buffer and corrected images of a next band that lie inside the band area are output.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a print control apparatus, a printcontrol method, a program, and a storage medium that perform printing bycorrecting a color deviation in a printer engine.

2. Description of the Related Art

A color deviation occurs in a tandem type color printer because adifferent photoreceptor is used for each color. Conventionally, opticalmethods such as mirror adjustments have been used for color deviationcorrection and particularly, for bending/inclination correction in asub-scanning direction.

Japanese Patent Application Laid-Open No. 10-243248 proposes a method ofcorrecting a color deviation by controlling transmission timing of animage. However, according to this method, an amount of correction cannotbe changed with respect to a main scanning position and thusbending/inclination in the sub-scanning direction cannot be corrected.

Also, Japanese Patent Application Laid-Open No. 2001-38964 proposes amethod of correcting bending/inclination in the sub-scanning directionby changing a readout position using three or more band buffers.However, according to this method, three or more band buffers arerequired and complex hardware is necessary that changes the readoutposition according to the amount of correction which varies inaccordance with the main scanning position.

SUMMARY OF THE INVENTION

The present invention is directed to printing with a minimum of bandbuffers and correcting bending/inclination in a sub-scanning directionwithout making optical adjustments or using special hardware.

According to an aspect of the present invention, a print controlapparatus includes: a band buffer for storing a 1-band image; an imagecorrecting unit for correcting images stored in the band buffer; anintermediate buffer for storing images corrected by the image correctingunit that lie outside a band area; and an image output unit foroutputting images including images stored in the intermediate buffer andimage of a next band corrected by the image correcting unit that lieinside the band area.

According to another aspect of the present invention, a print controlmethod includes: storing a 1-band image in a band buffer; correctingimages stored in the band buffer; storing images that are corrected thatlie outside a band area in an intermediate buffer; and outputting imagesincluding images stored in the intermediate buffer and images of a nextband that are corrected b that lie inside the band area.

Further features of the present invention will become apparent from thefollowing detailed description of exemplary embodiments with referenceto the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of the specification, illustrate embodiments of the invention and,together with the description, serve to explain the principles of theinvention.

FIG. 1 is a block diagram showing an exemplary functional configurationof a print control apparatus according to an embodiment of the presentinvention.

FIG. 2 is a block diagram showing details of an exemplary configurationof a printer according to an embodiment of the present invention.

FIG. 3 is a flowchart showing exemplary processing for a printer driveraccording to an embodiment of the present invention.

FIG. 4 is an illustration showing exemplary mapping of a main scanningposition in color deviation correction in an embodiment of the presentinvention.

FIG. 5 is a flowchart showing exemplary processing for color deviationcorrection in an embodiment of the present invention.

FIG. 6 is an illustration showing an exemplary flow of data for colordeviation correction in an embodiment of the present invention.

FIG. 7 is a block diagram showing exemplary hardware of a computeraccording to an embodiment of the present invention.

DETAILED DESCRIPTION OF THE EMBODIMENTS

Embodiments of the invention will be described in detail below withreference to the drawings.

First Exemplary Embodiment

FIG. 1 is a block diagram showing a functional configuration of a printcontrol apparatus according to an exemplary embodiment of the presentinvention. A computer 1 includes hardware such as a central processingunit (CPU),memory, a hard disk, a compact disk read-only memory (CDROM)drive, a keyboard, a mouse, a monitor, and a network interface. FIG. 7is a block diagram showing exemplary hardware of the computer 1.

In FIG. 7, the computer 1 includes an input control unit 700, a displayunit 701, a network interface unit 702, a CPU 703, ROM 704, randomaccess memory (RAM) 705, a hard disk drive (HDD) 706, and aninput/output interface 707.

Each of the above components is connected via the input/outputinterface707. Theinputcontrolunit700 controls the keyboard/mouse thatreceive input from a user. The display unit 701 provides an outputscreen (monitor) to the user. The network interface unit 702communicates with an external device via a network 101. The CPU 703controls each component of the computer 1. If the computer 1 is a servercomputer, processing of the computer 1 is performed based on a controlprogram stored in one of the ROM 704 and the HDD 706 shown in FIGS. 3and 5. The ROM 704 stores the control program and data. The RAM 705 isused as a temporary storage area and a work area. The HDD 706 includes alarge-capacity storage area and stores the control program and variousdata.

In FIG. 1, an operating system 2 manages hardware provided in thecomputer 1, and software such as an application 3, a printer driver 4, alanguage monitor 5, and a network port driver 6.

The application 3 is application software such as a word processor andcarries out creation/printing of a document according to instructions ofan operator.

The printer driver 4 receives a print instruction issued by theapplication 3 via the operating system 2 and converts the printinstruction into a printer command that can be interpreted by thelanguage monitor 5 and a printer 7.

The language monitor 5 receives the printer command issued by theprinter driver 4 and transmits the printer command to the printer 7 viathe network port driver 6. The language monitor 5 also notifies theprinter driver 4 of density correction information and color deviationcorrection information received from the printer 7 via the network portdriver 6.

The network port driver 6 transmits the printer command issued by thelanguage monitor 5 to the printer 7 via the network interface. If thedensity correction information and color deviation correctioninformation are received from the printer 7, the network port driver 6outputs the density correction information and color deviationcorrection information to the language monitor 5.

The printer 7 performs printing according to the printer commandreceived from the network port driver 6.

FIG. 2 is a block diagram showing an exemplary configuration of theprinter 7. A network interface 21 receives a printer command from thecomputer 1. A FIFO (first in, first out) memory 22 stores image data ofeach color received from the network interface 21. A decoding circuit 23decodes image data of each color stored in the FIFO memory 22 andoutputs the image data to a printer engine 24. The printer engine 24 is,for example, a laser beam printer engine and performs printing accordingto instructions of a control circuit 25 based on image data output fromthe decoding circuit 23. The control circuit 25 includes, for example, a1-chip CPU, and controls the network interface 21, the FIFO memory 22,the decoding circuit 23, and the printer engine 24.

An exemplary printing operation is described below.

When an operator gives a print instruction operating the application 3on the computer 1, a print directive is delivered from the application 3to the printer driver 4 via the operating system 2. The printer driver 4converts the print directive issued by the application 3 into imagedata, compresses the image data, and outputs the compressed image datatogether with a page start command specifying a paper size, a leftmargin, an upper margin, and a line length and the number of lines ofbitmap data and the like, and a page end command indicating an end of apage.

When a printer command is output, the operating system 2 notifies thelanguage monitor 5 of job start and then delivers the output printercommand to the language monitor 5 one by one. When a job is started, thelanguage monitor 5 transmits an occupancy request command to the printer7.

If the printer 7 is successfully occupied, the language monitor 5transmits the received printer commands to the printer 7 one by one.Before transmitting an image data command to the printer 7, the languagemonitor 5 transmits a status request command to acquire a status of theprinter 7 and confirms that the printer 7 is ready to receive image datacommands. When the image data command is received, a control circuit 25stores the image data in the FIFO memory 22. When transmission of theprinter command for one page is completed, the language monitor 5transmits a print request command. When the print request command isreceived, the control circuit 25 directs the printer engine 24 to startprinting.

When a print start is directed, the printer engine 24 feeds a sheet ofpaper and, when the sheet reaches a predetermined location, requestsoutput of image data. When the output of image data is requested, thedecoding circuit 23 reads a compressed image from the FIFO memory 22 andoutputs decoded original image data to the printer engine 24. At thistime, the image data read from the FIFO memory 22 is eliminated from theFIFO memory 22.

When printer commands for all pages of the job are transferred, thelanguage monitor 5 transmits an occupancy release command withoutwaiting until the sheet is ejected. Even after transmitting theoccupancy release command, the language monitor 5 continues to acquirethe status of the printer 7. The language monitor 5 frees up relevantpage memory if the acquired printer status indicates that page printingis normally terminated. If an error is detected, the language monitor 5retransmits an occupancy request command to try to restore an errorpage.

Next, details of processing of the printer driver 4 operating on a hostare described with reference to FIG. 3. Before the processing isexecuted, the printer driver 4 acquires correction amount information ofeach color in the sub-scanning direction stored in non-volatile memoryof the printer 7 at the time of starting each printing job. First, instep S1, the printer driver 4 outputs, in accordance with instructionsof the application 3, the page start command that specifies the papersize, the left margin, the upper margin, the line length and the numberof lines of bit map data. At this time, as described below, the uppermargin and the number of lines of bitmap data are corrected. Next, instep S11, the printer driver 4 outputs as a command, a sub-scanningcorrection amount at each main scanning position, as described below.Though this command is not required for printing, reference is made tothe command if a sub-scanning correction is canceled later or are-correction is made according to a correction amount of anotherengine.

Next, in step S2, the printer driver 4 creates a 1-band image dataconsisting of eight bits for each color of red, green, and blue inaccordance with a drawing instruction of the application 3. Next, instep S3, the printer driver 4 converts each pixel consisting of eightbits for each color of red, green, and blue into image data consistingof eight bits for each color of yellow, magenta, cyan, and black. Atthis time, density is corrected by referring to density correctioninformation acquired in advance when a job is started. Next, in step S4,the printer driver 4 performs dither processing to image data consistingof eight bits for each color of yellow, magenta, cyan, and black toconvert the data into image data consisting of two bits for each colorof yellow, magenta, cyan, and black. Next, in step S5, the printerdriver 4 corrects color deviation in the sub-scanning direction inaccordance with a color deviation correction procedure described below.At this time, since some images lie outside a band buffer, as describedbelow, the printer driver 4 holds such images in an intermediate buffer.Next, in step S6, the printer driver 4 compresses and outputs each colorof a 1-band image data. Next, in step S7, the printer driver 4determines whether processing of all bands in the page has beencompleted. If processing of all bands in the page has not beencompleted, the printer driver 4 returns to step S2 to perform processingof the next band.

If, in step S7, it is determined that processing of all bands in thepage has been completed, the printer driver 4, in step S8, compressesand outputs the data held in the intermediate buffer, that is, the imagedata that lay outside the band processed last. Next, in step S9, theprinter driver 4 outputs a page end command. Next, in step S10, theprinter driver 4 determines whether processing of all pages has beencompleted. If processing of all pages has not been completed, theprinter driver 4 returns to step S1 to perform processing of the nextpage. If processing of all pages has been completed, the printer driver4 terminates the processing.

Next, how to determine a correction amount in the sub-scanning directionis described. Before shipping from a factory, the correction amount ofeach color in the sub-scanning direction is measured. The measuredcorrection amount of each color at a left end, in the center, and at aright end of maximum paper is stored in advance in non-volatile memoryincorporated into the control circuit 25 of the printer 7. The printerdriver 4 acquires this value from the printer 7 before starting aprinting job and first approximates it using a quadratic function.

More specifically, assume that the correction amount in the sub-scanningdirection at the left end, in the center, and at the right end ofmaximum paper be L, M, and R respectively. Then, the correction amountZ=AX²+BX+C can be calculated as shown below, where X is a position inthe main scanning direction with an origin point in the center. Xcoordinates at the left end, in the center, and at the right end ofmaximum paper are −W/2, 0, and W/2 respectively, where W is a width ofthe maximum paper.R=A(W/2)² +B(W/2)+CM=CL=A(−W/2)² +B(−W/2)+CFrom the above equations, the following solutions are yielded:A=2(R+L−2M)/W ²B=(R−L)/WC=MTherefore, the correction amount in the sub-scanning direction Z can becalculated according to the following formula:Z=2(R+L−2M)(X/W)²+(R−L)(X/W)+MNext, based on this formula, the correction amount in the sub-scanningdirection will be calculated for all pixel positions in the mainscanning direction. Since, at this time, correction in the sub-scanningdirection is made by a line, the correction amount is rounded off to anearest integer on a line basis.

Next, it is described how to determine the correction amount in thesub-scanning direction from coordinates on a band buffer with referenceto FIG. 4. If the paper size is smaller than the maximum size, the paperis generally positioned in the center. Thus, paper positioning isconsidered when correction is made. In FIG. 4, an upper horizontal lineindicates the X axis and the center thereof is the origin point. Arectangle drawn by a broken line indicates a sheet of paper, the widththereof is w, and the center of the paper agrees with the origin of theX coordinate. A rectangle drawn by a solid line indicates an area inwhich the printer driver 4 creates an image in step S2 in FIG. 3, andthe origin of the x and y coordinates thereof is in an upper leftcorner. The origin of the x coordinate is positioned a left margin LMapart from the left end of the paper. Since the origin of the Xcoordinate is represented by w/2−LM as the x coordinate, as shown inFIG. 4, the X coordinate will be calculated as shown below.X=x+LM−w/2The X coordinate value thus determined is used to calculate thecorrection amount Z in the sub-scanning direction from the x coordinateby the formula as described above.

Since the paper width w changes depending on the paper size and adifferent X corresponds to the same x, the correction amount for thesame x changes depending on the paper size.

Next, details of color deviation correction processing in step S5 inFIG. 3 are described with reference to FIG. 5. In the present exemplaryembodiment, one pixel includes two bits for each color and one bytecontains four pixels of a specific color. Accordingly, processing isperformed in a two-bit unit to change a correction amount for eachpixel, which increases time required for processing. To avoid thisproblem, the same correction amount is applied to four pixels containedin one byte so that processing can be performed in a one-byte unit,which shortens time required for processing.

First, in step S21, the printer driver 4 sets a current color to a firstcolor, for example, to cyan. Next, in step S22, the printer driver 4sets a current column to a head, that is, the left end of the bandbuffer of the current color. Here, the column has the width of one byte.Next, in step S23, the printer driver 4 calculates the correction amountof a leftmost pixel of the current column as described above. At thistime, the printer driver 4 makes reference to the color deviationcorrection information acquired in advance when starting a job so as tocalculate the correction amount. Since, in the present embodiment, onepixel includes two bits for each color, one byte contains four pixels ofspecific colors. However, the correction amount of the leftmost pixel inone byte is similarly applied to four pixels in one byte so thatprocessing can be performed in a one-byte unit, as described above.Next, in step S24, the printer driver 4 adds a maximum correction amountto the correction amount to obtain a positive value or 0. For example,if the correction amount is between −20 lines to 20 lines, the maximumcorrection amount of 20 lines is added to obtain 0 line and 40 lines.This processing enables avoiding a case in which processing cannot beperformed. Otherwise, when the correction amount becomes a negativevalue as a result of correcting data in the current band, the data movesto the position of a previous band in which processing is completed.

Next, in step S25, the printer driver 4 sets the current byte to the endof the current column, that is, to the current column in the last lineof the band buffer. Next, in step S26, the printer driver 4 calculates acorrection position of the current byte to determine whether thecorrection position is within the band buffer. More specifically, theprinter driver 4 determines whether the position of the current bytebelow the correction number of lines calculated in step S24 is withinthe band buffer. If the correction position of the current byte iswithin the band buffer, in step S27, the printer driver 4 copies thecurrent byte to the correction position calculated in step S26 and thenproceeds to step S28. If the correction position of the current byte isnot within the band buffer, in stepS36, the printer driver 4 copies thecurrent byte to a position according to the number of lines lyingoutside the band buffer in a second intermediate buffer, and thenproceeds to step S28.

In step S28, the printer driver 4 moves up the current byte position byone line. Next, in step S29, the printer driver 4 determines whetherprocessing of one column is completed, that is, whether the current byteposition is outside a head position of the band buffer. If processing ofone column is not completed, the printer driver 4 returns to step S26 tocontinue processing of the current column. If processing of one columnis completed, in step S30, the printer driver 4 copies data by thenumber of correction lines calculated in step S24, from the head line ofthe current column, from a first intermediate buffer to the band buffer.The first intermediate buffer is assumed to be filled in advance withblank pixels. Next, in step S31, the printer driver 4 moves the currentcolumn rightward by one byte. Next, in step S32, the printer driver 4determines whether processing of all columns is completed. If processingof all columns is not completed, the printer driver 4 returns to stepS23 to start processing of the next column.

If processing of all columns is completed, in step S33, the printerdriver 4 copies content of the second intermediate buffer to the firstintermediate buffer of the current color. Next, in step S34, the printerdriver 4 sets the current color to the next color. Next, in step S35,the printer driver 4 determines whether processing of all colors iscompleted. If processing of all colors is not completed, the printerdriver 4 returns to step S22 to start processing of the next color. Ifprocessing of all colors is completed, the printer driver 4 terminatescolor deviation correction processing. The number of lines in the uppermargin performed in step S1 shown in FIG. 3 is corrected by subtractinga value to be added to the correction amount (i.e., the maximumcorrection amount) in step S24. By performing this processing, increaseof the upper margin caused by addition of a correction amount in stepS24 can be canceled. The number of lines in bitmap data performed instep S1 shown in FIG. 3 is corrected by adding the number of lines inthe intermediate buffer. Since the number of lines in the intermediatebuffer is twice the maximum amount, that value is added.

Next, processing in FIG. 5 is described by taking horizontal bands(lateral direction: main scanning direction), as shown in FIG. 6, as anexample. First, image data in a byte unit at a lower left of a band iswritten in one of the band buffer and the intermediate buffer inaccordance with the correction amount. Next, image data in a byte unitimmediately above (longitudinal direction: sub-scanning direction) iswritten in one of the band buffer and the intermediate buffer inaccordance with the correction amount. Image data in a byte unitimmediately above is processed sequentially until processing of imagedata for the band in the longitudinal direction is completed. Then,image data in a byte unit immediately to the right of the image data ina byte unit at the lower left is written in one of the band buffer andthe intermediate buffer in accordance with the correction amount. Then,image data in a byte unit immediately above is sequentially processed.

In the above example, processing in the longitudinal direction(sub-scanning direction) has been described, however, a system in whichprocessing is performed in the lateral direction (main scanningdirection) can also be realized. More specifically, image data in a byteunit at a lower left of a band is written in one of the band buffer andthe intermediate buffer in accordance with the correction amount. Next,image data in a byte unit immediately to the right (lateral direction:main scanning direction) is written in one of the band buffer and theintermediate buffer in accordance with the correction amount. Image datain a byte unit immediately to the right is processed sequentially untilprocessing of image data for the band in the lateral direction iscompleted. Then, image data in a byte unit immediately above the imagedata in a byte unit at the lower left is written in one of the bandbuffer and the intermediate buffer in accordance with the correctionamount. Then, image data in a byte unit immediately to the right isprocessed sequentially.

Next, a flow of data caused by color deviation correction processingwill be described with reference to FIG. 6. First, image data 601 in afirst band is formed in the band buffer. When color deviation correctionprocessing is invoked, a correction is made in accordance with thecorrection amount in the sub-scanning direction. The image data 601 isdivided into data 602 that remains in the band buffer, and data 603 thatlies outside the band buffer and is stored in the second intermediatebuffer. The data 603 stored in the second intermediate buffer is copiedto the first intermediate buffer as image data 604 when processing ofthe first band is completed. Next, image band 605 in a second band isformed in the band buffer. When color deviation correction processing isinvoked, the image data 605 is divided into data 606 that remains in theband buffer, and data 607 that lies outside the band buffer and isstored in the second intermediate buffer. Further, the data 604 held inthe first intermediate buffer that lay outside the first band is storedin the band buffer as image data 609.

Correction processing is performed sequentially in this manner. Afterprocessing of the last band is performed, data 610 that lay outside thelast band is held in the first intermediate buffer. The data 610 isoutput by processing in step S8 shown in FIG. 3.

Second Exemplary Embodiment

A second exemplary embodiment of the present invention is describednext. In the second exemplary embodiment, color deviation correctionprocessing is performed before dither processing. More specifically,dither processing in step S4 and color deviation correction processingin step S5 shown in FIG. 3 are interchanged. Since an image beforedither processing includes eight bits for each color, a correctionamount for each pixel is calculated in color deviation correctionprocessing without applying the same correction amount to four pixels.

Third Exemplary Embodiment

A third exemplary embodiment of the present invention is described next.In the third exemplary embodiment, the printer engine 24 has a two-sidedprinting mechanism. In the case of two-sided printing, while printing ona first side is generally center-aligned like single-sided printing,printing on a second side can be left-aligned. In such a case, thecorrection amount calculated in step S23 shown in FIG. 5 is calculatedusing center alignment for the first side of two-sided printing, similarto the first embodiment and using left alignment for the second side oftwo-sided printing. More specifically, instead of X=x+LM−w/2 describedabove, the same formula as the maximum paper, that is, X=x+LM−W/2 can beused for calculation regardless of the paper width.

When the two-sided printing is performed, depending on a combination ofa paper transfer direction (longitudinal feed and transverse feed) and abinding direction (longer side binding and shorter side binding), animage on the first side must be rotated by 180°, but this processing canbe performed by creating a rotated image in advance in step S2 shown inFIG. 3.

Other Embodiments

In the above-described exemplary embodiments, image creation and colordeviation corrections are performed by a host computer, but insteadother methods can also be used. For example, the printer driver 4 canoutput a page description language without performing image creation andcolor deviation corrections so that the printer 7 can perform, based onthe received page description language, image creation and colordeviation corrections.

As described above, by using the band buffer with a set of four colors,the first intermediate buffer with a set of four colors, and thetemporary intermediate buffer with a set of one color, color deviationcorrections in the sub-scanning direction can be performed, and printingcan be executed without preparing special hardware.

While the present invention has been described with reference toexemplary embodiments, it is to be understood that the invention is notlimited to the disclosed exemplary embodiments. The scope of thefollowing claims is to be accorded the broadest interpretation so as toencompass all modifications, equivalent structures and functions.

This application claims priority from Japanese Patent Application No.2005-314706 filed Oct. 28, 2005, which is hereby incorporated byreference herein in its entirety.

1. A print control apparatus comprising: a band buffer for storing a1-band image; an image correcting unit for correcting images stored inthe band buffer based on a correction amount in a sub-scanning directionat a plurality of paper positions; an intermediate buffer for storingimages corrected by the image correcting unit that lie outside a bandarea; and an image output unit for outputting images including imagesstored in the intermediate buffer and images of a next band corrected bythe image correcting unit that lie inside the band area; wherein theimage correcting unit calculates Z, a correction amount in thesub-scanning direction at a pixel position in a main scanning direction,according to the following formula:Z=2(R+L−2M)(X/W)2+(R−L)(X/W)+M, where L represents the correction amountin the sub-scanning direction at a left end of paper, M represents thecorrection amount in the sub-scanning direction in a center of paper, Rrepresents the correction amount in the sub-scanning direction at aright end of paper, X represents the correction amount in thesub-scanning direction in the main scanning direction, and W representsa width of paper, and wherein the image correcting unit corrects theimages stored in the band buffer based on the calculated correctionamount in the sub-scanning direction Z.
 2. The print control apparatusaccording to claim 1, wherein an amount of correction made by thecorrecting unit is different from color to color.
 3. The print controlapparatus according to claim 1, wherein the image output unit outputsimages stored in the intermediate buffer after outputting images in alast band.
 4. The print control apparatus according to claim 1, whereinthe image correcting unit corrects the images stored in the band bufferbased on a correction amount in the sub-scanning direction at a leftend, in a center and at a right end of paper.
 5. The print controlapparatus according to claim 1, wherein an amount of correction made bythe correcting unit is different on a front side and a back side oftwo-sided printing.
 6. The print control apparatus according to claim 1,wherein the image correcting unit determines whether a correctionposition of data of a current byte is within a band, the imagecorrecting unit copies the data of the current byte to the band bufferwhen the image correcting unit determines that the correction positionof the data of the current byte is within the band, and the imagecorrecting unit copies the data of the current byte to the intermediatebuffer when the image correcting unit determines that the correctionposition of the data of the current byte is not within the band.
 7. Aprint control method comprising: storing a 1-band image in a bandbuffer; correcting images stored in the band buffer based on acorrection amount in a sub-scanning direction at a plurality of paperpositions; storing images that were corrected that lie outside a bandarea in an intermediate buffer; and outputting images including imagesstored in the intermediate buffer and images of a next band correctedthat was corrected that lie inside the band area, wherein the imagesstored in the band buffer are corrected by calculating Z, a correctionamount in the sub-scanning direction at a pixel position in a mainscanning direction, according to the following formula:Z=2(R+L−2M)(X/W)2+(R−L)(X/W)+M, where L represents the correction amountin the sub-scanning direction at the left end of paper, M represents thecorrection amount in the sub-scanning direction in the center of paper,R represents the correction amount in the sub-scanning direction at theright end of paper, X represents the correction amount in thesub-scanning direction in the main scanning direction, and W representsa width of paper, and wherein the images stored in the band buffer arecorrected based on the calculated correction amount in the sub-scanningdirection Z.
 8. The print control method according to claim 7, whereinan amount of correction in images that are corrected is different fromcolor to color.
 9. The print control method according to claim 7,wherein images that are output include images stored in the intermediatebuffer after outputting images in a last band.
 10. The print controlmethod according to claim 7, wherein the images stored in the bandbuffer are corrected based on a correction amount in the sub-scanningdirection at the left end, in the center and at the right end of paper.11. The print control method according to claim 7, wherein an amount ofcorrection is different on a front side and a back side of two-sidedprinting.
 12. The print control method according to claim 7, furthercomprising: determining whether a correction position of data of acurrent byte is within a band; copying the data of the current byte tothe band buffer when the correction position of the data of the currentbyte is determined to be within the band; and copying the data of thecurrent byte to the intermediate buffer when the correction position ofthe data of the current byte is not determined to be within the band.13. A non-transitory computer-readable medium storing a program forcausing a computer to execute steps including: a first storage step forstoring a 1-band image in a band buffer; an image correcting step forcorrecting images stored in the band buffer based on a correction amountin a sub-scanning direction at a plurality of paper positions; a secondstorage step for storing images corrected by the image correcting stepthat lie outside a band area in an intermediate buffer; and an imageoutput step for outputting images including images stored in theintermediate buffer and images of a next band corrected by the imagecorrecting step that lie inside the band area, wherein the images storedin the band buffer are corrected by calculating Z, a correction amountin the sub-scanning direction at a pixel position in a main scanningdirection, according to the following formula:Z=2(R+L−2M)(X/W)2+(R−L)(X/W)+M, where L represents the correction amountin the sub-scanning direction at the left end of paper, M represents thecorrection amount in the sub-scanning direction in the center of paper,R represents the correction amount in the sub-scanning direction at theright end of paper, X represents the correction amount in thesub-scanning direction in the main scanning direction, and W representsa width of paper, and wherein the images stored in the band buffer arecorrected based on the calculated correction amount in the sub-scanningdirection Z.